SQL ServerのUnicode列はリトルエンディアンということであってるのかな…?
from UTF-16のバイト順の問題 ビッグエンディアンとリトルエンディアン
例えば文
CP932だと0x95B6
UnicodeだとU+6587
0x65と0x87は上位ビットからならんでいるのでビッグエンディアン)
SQL Serverでvarbinaryを使って比較してみる
castもconvertも結果は同じだった
CP932
code:sql
select convert(varbinary, '文'); /* 同じ結果 */ -- select cast('文' as varbinary(max));
table:result
0x95B6
Unicode
code:sql
select convert(varbinary, N'文'); /* 同じ結果 */ -- select cast(N'文' as varbinary(max));
table:result
0x8765
0x65と0x87がひっくり返って下位ビットから並んでいるのでリトルエンディアン
endianness - Why is SQL Server Big Endian? - Stack Overflow
よく読まないとわからん
参考
binary と varbinary (Transact-SQL) - SQL Server | Microsoft Learn